草庐IT

Java HotSpot 枚举开销

全部标签

c# - 64 位枚举? C#

是否有可能获得一个枚举来保存64位值?我写了下面的代码并得到了这个编译错误消息。enumEnumTest{a=0x100000000};errorCS0266:Cannotimplicitlyconverttype'long'to'int'.Anexplicitconversionexists(areyoumissingacast?) 最佳答案 是的,您需要从long中“导出”它。publicenumMyEnum:long{} 关于c#-64位枚举?C#,我们在StackOverflow

c# - 如何通过枚举名称和值名称获取未知枚举的值?

很抱歉问这个问题,但我没有找到适合这个任务的解决方案:我有一个名为“myEnum”的枚举(函数不知道MyEnum)我需要获取myEnum的Value的int值例子:程序员将其枚举命名为“myEnum”:publicenummyEnum{foo=1,bar=2,}我的函数应该执行以下操作:通过字符串获取“myEnum”的“foo”的值函数应由以下人员打开:publicintGetValueOf(stringEnumName,stringEnumConst){}所以当程序员A打开它时:inta=GetValueOf("myEnum","foo");它应该返回1当程序员B有一个名为“mySp

c# - 'OR' 标记枚举中所有值的最佳方法?

给定枚举:[Flags]publicenummytest{a=1,b=2,c=4}我想出了两种方法来表示单个变量中的所有值:varOR1=(mytest)Enum.GetNames(typeof(mytest)).Sum(a=>(int)Enum.Parse(typeof(mytest),a));varOR2=(mytest)(typeof(mytest).GetEnumValues()asmytest[]).Sum(a=>(int)a);现在,虽然它们都有效,但有更简洁的方法吗?可能是我缺少的.NET方法?编辑:为了澄清,我需要函数是动态的-我不想通过指定每个enum值来计算它。

c# - 将字符串解析为枚举类型

我有一个像这样的枚举类型作为例子:publicEnumMyEnum{enum1,enum2,enum3};我将从配置文件中读取一个字符串。我需要的是将字符串解析为MyEnum类型或null或未定义。不确定以下代码是否有效(很抱歉现在无法访问我的VS)://example:ParseEnum("ENUM1",refeVal);boolParseEnum(stringvalue1,refeVal)whereT:Enum{boolbRet=false;varx=fromxinEnum.GetNames(typeof(T))wherestring.Equals(value1,x,StringC

c# - 可以将 C# 枚举声明为 bool 类型吗?

我可以将c#enum声明为bool吗:enumResult:bool{pass=true,fail=false} 最佳答案 它说批准的枚举类型是byte、sbyte、short、ushort、int、uint、long或ulong。enum(C#Reference) 关于c#-可以将C#枚举声明为bool类型吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1928799/

C# 将 int 类型的对象转换为可为 null 的枚举

我只需要能够将对象转换为可为空的枚举。对象可以是枚举、null或int。谢谢!publicenumMyEnum{A,B}voidPut(objectvalue){System.Nullableval=(System.Nullable)value;}Put(null);//worksPut(Myenum.B);//worksPut(1);//Invalidcastexception!! 最佳答案 怎么样:MyEnum?val=value==null?(MyEnum?)null:(MyEnum)value;盒装Actorint至MyEn

c# - 如何重写查询表达式以用整数替换枚举?

受到能够在EF查询中使用枚举的愿望的启发,我正在考虑向我的存储库添加一个ExpressionVisitor,它将采用传入的标准/规范标准并重写它们以使用相应的持久int属性。我一直在我的(代码优先)实体中使用以下值后缀模式:publicclassUser:IEntity{publiclongID{get;set;}internalintMemberStatusValue{get;set;}publicMemberStatusMemberStatus{get{return(MemberStatus)MemberStatusValue;}set{MemberStatusValue=(int

c# - 任何人都知道一种快速获取枚举值自定义属性的方法吗?

这可能最好用一个例子来说明。我有一个带有属性的枚举:publicenumMyEnum{[CustomInfo("Thisisacustomattrib")]None=0,[CustomInfo("Thisisanotherattrib")]ValueA,[CustomInfo("Thishasanextraflag",AllowSomething=true)]ValueB,}我想从实例中获取这些属性:publicCustomInfoAttributeGetInfo(MyEnumenumInput){TypetypeOfEnum=enumInput.GetType();//thiswil

c# - 我如何在类型安全的枚举模式上使用 switch 语句

我以不同的方式找到了一个关于实现枚举的漂亮示例。我认为这就是所谓的类型安全枚举模式。我开始使用它,但我意识到我不能在switch语句中使用它。我的实现如下所示:publicsealedclassMyState{privatereadonlystringm_Name;privatereadonlyintm_Value;publicstaticreadonlyMyStatePASSED=newMyState(1,"OK");publicstaticreadonlyMyStateFAILED=newMyState(2,"ERROR");privateMyState(intvalue,stri

c# - 在 C# 中使用枚举索引数组

我有很多固定大小的数字集合,其中每个条目都可以用常量访问。自然这似乎指向数组和枚举:enumStatType{Foo=0,Bar//...}float[]stats=newfloat[...];stats[StatType.Foo]=1.23f;这个问题当然是你不能使用枚举来索引一个数组而不进行强制转换(尽管编译后的IL使用的是纯整数)。所以你必须到处写:stats[(int)StatType.foo]=1.23f;我曾尝试寻找无需强制转换即可使用相同简单语法的方法,但尚未找到完美的解决方案。使用字典似乎是不可能的,因为我发现它比数组慢320倍左右。我还尝试为以枚举作为索引的数组编写一